PHP面试知识点

368次阅读

共计 1175 个字符,预计需要花费 3 分钟才能阅读完成。

类的静态调用和实例化调用各自的利弊

静态方法是类中的一个成员方法,属于整个类,即使不用创建任何对象也可以直接调用!

静态方法效率上要比实例化高,静态方法的缺点是不自动销毁,而实例化的则可以做销毁。

一些防范 SQL 注入、XSS 攻击、CSRF 攻击的方法

SQL 注入:– addslashes() 函数 ( 将’转为’,将”转为”) – mysqli_real_escape_string() 函数 – PDO::quote()

XSS:– htmlspecialchars 函数

CSRF:– 验证 HTTP REFER – 使用 toke 进行验证

echo、print、print_r、var_dump 区别

echo

输出单个或多个字符,多个使用逗号分隔

无返回值

echo "String 1", "String 2";

print

只可以输出单个字符

有返回值,因此可用于表达式

print "Hello";if ($expr && print "foo") {}

print_r

输出关于变量的易于理解的信息

支持多种数据类型,包括字符、数组、对象,格式化成易读格式

在调试时非常有用

若设置第二个参数,可将输出值返回 (而不直接输出)

$b = [
    'm' => 'monkey',
    'foo' => 'bar',
    'x' => ['x', 'y', 'z'],
];
$results = print_r($b, true); //$results 包含了 print_r 的输出 

var_dump

输出关于变量的易于理解的信息,多个可用分号分隔

支持多种数据类型,包括字符、数组、对象,格式化成易读格式 •输出格式与 print_r 不同,var_dump 的输出包含数据类型

在调试时非常有用

无返回值 注意

即使 print 可用于表达式,但这种用法,常常不利于代码可读性,与其他操作符混用容易让人误解

echo 和 print 都是语言结构,print_r 和 var_dump 是普通函数。echo 或 print 使用时,不需要使用括号将变量括起来

单引号和双引号的区别

双引号可以被分析器解析,单引号则不行

isset 和 empty 的区别

isset:检测变量是否已设置并且非 NULL empty:判断变量是否为空,变量为 0/false 也会被认为是空;变量不存在,不会产生警告

static、self、$this 的区别

static

static 可以用于静态或非静态方法中,也可以访问类的静态属性、静态方法、常量和非静态方法,但不能访问非静态属性

self

self 可以用于访问类的静态属性、静态方法和常量,但 self 指向的是当前定义所在的类,这是 self 的限制

this

this 指向的就是哪个对象。但 $this 不能访问类的静态属性和常量,且 $this 不能存在于静态方法中

持续整理

正文完
 4
Hack V
版权声明:本站原创文章,由 Hack V 于2022-12-11发表,共计1175字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
请喝咖啡